package ec.edu.ucacue.siop.proceso.controlEstadistico;

import java.util.Calendar;
import java.util.List;

import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;

import ec.edu.ucacue.siop.contenedor.ContEstadisticas;
import ec.edu.ucacue.siop.modelo.operacion.historico.HistoriaVariablesProceso;
import ec.edu.ucacue.siop.modelo.recurso.VariableProceso;

public class CrearEstadisticaVarPro {

	private ContEstadisticas contenedor = new ContEstadisticas();
	
	public ContEstadisticas getContenedor() {
		return contenedor;
	}

	public void setContenedor(ContEstadisticas contenedor) {
		this.contenedor = contenedor;
	}

	public boolean calcular(VariableProceso var, List<HistoriaVariablesProceso> listaVar, Calendar fi, Calendar ff ){
		DescriptiveStatistics stats = new DescriptiveStatistics();
		
		contenedor.setNombreVariable(var.getNombre());
		contenedor.setUnidadFuncional(var.getUnidadFuncional().getNombre());
		contenedor.setUfPadre(var.getUnidadFuncional().getUnidadPadre().getNombre());
		stats.clear();
		System.out.println("tamano de la muestra " + listaVar.size());
		for(int i= 0; i<listaVar.size(); i++){
			
			stats.addValue(listaVar.get(i).getValor());
		}
		contenedor.setDesvTip(stats.getStandardDeviation());
		contenedor.setMedia(stats.getMean());
		contenedor.setMediaGeometrica(stats.getGeometricMean());
		contenedor.setMediana(stats.getPercentile(50));
		contenedor.setMax(stats.getMax());
		contenedor.setMin(stats.getMin());
		contenedor.setNroVar(stats.getN());
	
		return true;
	}
}
